﻿#include "Config.h"

//初始化FrameQueue，视频和音频keep_last设置为1，字幕设置为0
int frame_queue_init(FrameQueue *f, PacketQueue *pktq, int max_size, int keep_last);
//对帧队列进行销毁
void frame_queue_destory(FrameQueue *f);
//唤醒条件变量
void frame_queue_signal(FrameQueue *f);
//获取队列当前Frame, 在调用该函数前先调用frame_queue_nb_remaining确保有frame可读
Frame *frame_queue_peek(FrameQueue *f);
//获取当前Frame的下一Frame, 此时要确保queue里面至少有2个Frame
//不管你什么时候调用，返回来肯定不是 NULL
Frame *frame_queue_peek_next(FrameQueue *f);
//获取last Frame
Frame *frame_queue_peek_last(FrameQueue *f);
// 获取可写指针
Frame *frame_queue_peek_writable(FrameQueue *f);
// 获取可读
Frame *frame_queue_peek_readable(FrameQueue *f);
// 更新写指针
void frame_queue_push(FrameQueue *f);
//释放当前frame，并更新读索引rindex
void frame_queue_next(FrameQueue *f);
//返回还没有播放帧的数量
int frame_queue_nb_remaining(FrameQueue *f);
//返回上次显示的位置
int frame_queue_last_pos(FrameQueue *f);
//释放引用
void frame_queue_unref_item(Frame *vp);

